package moduleFrame.interfaces
{
	import flash.events.IEventDispatcher;
	
	/**
	 * 用于映射在模块上的对象
	 * @author Pelephone
	 */
	public interface IMaper extends IEventDispatcher
	{
		/**
		 * 获取对象的名字,用于绑定和获取对象
		 * @return 
		 */
		function getName():String;
		
		/**
		 * 设置对象名
		 * @param value
		 */
		function setName(value:String):void;
		
		/**
		 * 移除对象(移出绑定,删除里面所有引用对象)
		 */
		function dispose():void;
		
		/**
		 * 设置父类，只在框架内部实现
		 * @param mapParent
		 */
		function setMapParent(mapParent:IMapComposite):void;
		
		/**
		 * 安全从父类移出
		 
		 function safeRemove():void*/
		
		/**
		 * 注册时触发(将父类做为参数传入)
		 */ 
		function onRegister():void;
		
		/**
		 * 移出时触发
		 */ 
		function onRemove( ):void;
		
		
		
		/**
		 * 映射组合的父类
		 */
		function getMapParent():IMapComposite;
		
		/**
		 * 映射组合的根类
		 */
		function getMapRoot():IMapComposite;
	}
}